[INFO] fetching crate id3 1.10.0...
[INFO] checking id3-1.10.0 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate id3 1.10.0 into /workspace/builds/worker-5-tc1/source
[INFO] validating manifest of crates.io crate id3 1.10.0 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate id3 1.10.0
[INFO] finished tweaking crates.io crate id3 1.10.0
[INFO] tweaked toml for crates.io crate id3 1.10.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 51b04f4951f7389fc194fdc22512f84db3859681ada335438842f017c075b543
[INFO] running `Command { std: "docker" "start" "-a" "51b04f4951f7389fc194fdc22512f84db3859681ada335438842f017c075b543", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "51b04f4951f7389fc194fdc22512f84db3859681ada335438842f017c075b543", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "51b04f4951f7389fc194fdc22512f84db3859681ada335438842f017c075b543", kill_on_drop: false }`
[INFO] [stdout] 51b04f4951f7389fc194fdc22512f84db3859681ada335438842f017c075b543
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e9da85af799300cb6069d5b079d2a0044086a59809a155f616fcb5df5423a6d1
[INFO] running `Command { std: "docker" "start" "-a" "e9da85af799300cb6069d5b079d2a0044086a59809a155f616fcb5df5423a6d1", kill_on_drop: false }`
[INFO] [stderr]     Checking adler v1.0.2
[INFO] [stderr]    Compiling rustix v0.38.31
[INFO] [stderr]     Checking linux-raw-sys v0.4.13
[INFO] [stderr]     Checking fastrand v2.0.1
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking id3 v1.10.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/stream/frame/content.rs:589:17
[INFO] [stdout]     |
[INFO] [stdout] 589 |                 _ => unreachable!(),
[INFO] [stdout]     |                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reader` is never used
[INFO] [stdout]   --> src/storage.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub trait Storage<'a> {
[INFO] [stdout]    |           ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn reader(&'a mut self) -> io::Result<Self::Reader>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tempfile v3.10.1
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         use tokio::io::AsyncReadExt;
[INFO] [stdout]     |             ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:214:13
[INFO] [stdout]     |
[INFO] [stdout] 214 |         use tokio::io::AsyncReadExt;
[INFO] [stdout]     |             ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:593:7
[INFO] [stdout]     |
[INFO] [stdout] 593 |     #[tokio::test]
[INFO] [stdout]     |       ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:628:7
[INFO] [stdout]     |
[INFO] [stdout] 628 |     #[tokio::test]
[INFO] [stdout]     |       ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:765:7
[INFO] [stdout]     |
[INFO] [stdout] 765 |     #[tokio::test]
[INFO] [stdout]     |       ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:113:26
[INFO] [stdout]     |
[INFO] [stdout] 113 |         mut reader: impl tokio::io::AsyncRead + std::marker::Unpin,
[INFO] [stdout]     |                          ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:209:22
[INFO] [stdout]     |
[INFO] [stdout] 209 |     mut reader: impl tokio::io::AsyncRead + std::marker::Unpin,
[INFO] [stdout]     |                      ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:595:24
[INFO] [stdout]     |
[INFO] [stdout] 595 |         let mut file = tokio::fs::File::open("testdata/id3v22.id3").await.unwrap();
[INFO] [stdout]     |                        ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 481 +     use crate::stream::tag::fs::File;
[INFO] [stdout]     |
[INFO] [stdout] 481 +     use std::fs::File;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `File`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 595 -         let mut file = tokio::fs::File::open("testdata/id3v22.id3").await.unwrap();
[INFO] [stdout] 595 +         let mut file = File::open("testdata/id3v22.id3").await.unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:630:24
[INFO] [stdout]     |
[INFO] [stdout] 630 |         let mut file = tokio::fs::File::open("testdata/id3v23.id3").await.unwrap();
[INFO] [stdout]     |                        ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 481 +     use crate::stream::tag::fs::File;
[INFO] [stdout]     |
[INFO] [stdout] 481 +     use std::fs::File;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `File`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 630 -         let mut file = tokio::fs::File::open("testdata/id3v23.id3").await.unwrap();
[INFO] [stdout] 630 +         let mut file = File::open("testdata/id3v23.id3").await.unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:767:24
[INFO] [stdout]     |
[INFO] [stdout] 767 |         let mut file = tokio::fs::File::open("testdata/id3v24_ext.id3")
[INFO] [stdout]     |                        ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 481 +     use crate::stream::tag::fs::File;
[INFO] [stdout]     |
[INFO] [stdout] 481 +     use std::fs::File;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `File`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 767 -         let mut file = tokio::fs::File::open("testdata/id3v24_ext.id3")
[INFO] [stdout] 767 +         let mut file = File::open("testdata/id3v24_ext.id3")
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 10 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `id3` (lib test) due to 11 previous errors
[INFO] running `Command { std: "docker" "inspect" "e9da85af799300cb6069d5b079d2a0044086a59809a155f616fcb5df5423a6d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e9da85af799300cb6069d5b079d2a0044086a59809a155f616fcb5df5423a6d1", kill_on_drop: false }`
[INFO] [stdout] e9da85af799300cb6069d5b079d2a0044086a59809a155f616fcb5df5423a6d1
[INFO] checking id3-1.10.0 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate id3 1.10.0 into /workspace/builds/worker-5-tc2/source
[INFO] validating manifest of crates.io crate id3 1.10.0 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate id3 1.10.0
[INFO] finished tweaking crates.io crate id3 1.10.0
[INFO] tweaked toml for crates.io crate id3 1.10.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 04bb7aac186c565cec62e22ed7155623e8501438cd0d8b5835f607aab9298604
[INFO] running `Command { std: "docker" "start" "-a" "04bb7aac186c565cec62e22ed7155623e8501438cd0d8b5835f607aab9298604", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "04bb7aac186c565cec62e22ed7155623e8501438cd0d8b5835f607aab9298604", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "04bb7aac186c565cec62e22ed7155623e8501438cd0d8b5835f607aab9298604", kill_on_drop: false }`
[INFO] [stdout] 04bb7aac186c565cec62e22ed7155623e8501438cd0d8b5835f607aab9298604
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cdb8f6366110ce3ac2f1e5628825e5ce180f222454baff2fbfb8a227f97729f5
[INFO] running `Command { std: "docker" "start" "-a" "cdb8f6366110ce3ac2f1e5628825e5ce180f222454baff2fbfb8a227f97729f5", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v0.38.31
[INFO] [stderr]     Checking adler v1.0.2
[INFO] [stderr]     Checking linux-raw-sys v0.4.13
[INFO] [stderr]     Checking fastrand v2.0.1
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking id3 v1.10.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/frame/timestamp.rs:106:30
[INFO] [stdout]     |
[INFO] [stdout] 106 |             self.0 = &self.0[1..];
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/frame/timestamp.rs:138:30
[INFO] [stdout]     |
[INFO] [stdout] 138 |             self.0 = &self.0[1..];
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]  --> src/v1.rs:9:37
[INFO] [stdout]   |
[INFO] [stdout] 9 | static TAG_CHUNK: ops::Range<i64> = -128..0;
[INFO] [stdout]   |                                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/v1.rs:11:38
[INFO] [stdout]    |
[INFO] [stdout] 11 | static XTAG_CHUNK: ops::Range<i64> = -355..-128;
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/v1.rs:224:44
[INFO] [stdout]     |
[INFO] [stdout] 224 |             reader.read_exact(&mut tag_buf[(l + TAG_CHUNK.start) as usize..])?;
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/v1.rs:233:58
[INFO] [stdout]     |
[INFO] [stdout] 233 |             let (xtag, tag) = (&tag_buf[..227], &tag_buf[227..]);
[INFO] [stdout]     |                                                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:234:21
[INFO] [stdout]     |
[INFO] [stdout] 234 |             if &tag[0..3] != b"TAG" {
[INFO] [stdout]     |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:239:26
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 if &xtag[0..4] == b"TAG+" {
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:262:37
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let title = decode_str(&tag[3..33], xtag.as_ref().map(|t| &t[4..64]));
[INFO] [stdout]     |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:262:70
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let title = decode_str(&tag[3..33], xtag.as_ref().map(|t| &t[4..64]));
[INFO] [stdout]     |                                                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:263:38
[INFO] [stdout]     |
[INFO] [stdout] 263 |         let artist = decode_str(&tag[33..63], xtag.as_ref().map(|t| &t[64..124]));
[INFO] [stdout]     |                                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:263:72
[INFO] [stdout]     |
[INFO] [stdout] 263 |         let artist = decode_str(&tag[33..63], xtag.as_ref().map(|t| &t[64..124]));
[INFO] [stdout]     |                                                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:264:37
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let album = decode_str(&tag[63..93], xtag.as_ref().map(|t| &t[124..184]));
[INFO] [stdout]     |                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:264:71
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let album = decode_str(&tag[63..93], xtag.as_ref().map(|t| &t[124..184]));
[INFO] [stdout]     |                                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:265:36
[INFO] [stdout]     |
[INFO] [stdout] 265 |         let year = decode_str(&tag[93..97], None);
[INFO] [stdout]     |                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:267:35
[INFO] [stdout]     |
[INFO] [stdout] 267 |             (Some(tag[126]), &tag[97..125])
[INFO] [stdout]     |                                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:269:25
[INFO] [stdout]     |
[INFO] [stdout] 269 |             (None, &tag[97..127])
[INFO] [stdout]     |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:275:44
[INFO] [stdout]     |
[INFO] [stdout] 275 |             let genre_str = decode_str(&xt[185..215], None);
[INFO] [stdout]     |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:276:45
[INFO] [stdout]     |
[INFO] [stdout] 276 |             let start_time = decode_str(&xt[185..215], None);
[INFO] [stdout]     |                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:277:43
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let end_time = decode_str(&xt[185..215], None);
[INFO] [stdout]     |                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/chunk.rs:70:52
[INFO] [stdout]    |
[INFO] [stdout] 70 |             storage = PlainStorage::new(&mut file, id3_tag_pos..id3_tag_end_pos);
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/chunk.rs:86:52
[INFO] [stdout]    |
[INFO] [stdout] 86 |             storage = PlainStorage::new(&mut file, pos..pos);
[INFO] [stdout]    |                                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/chunk.rs:260:26
[INFO] [stdout]     |
[INFO] [stdout] 260 |         let tag = buffer[0..4]
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/chunk.rs:264:52
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let size = F::Endianness::read_u32(&buffer[4..8]);
[INFO] [stdout]     |                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/chunk.rs:270:45
[INFO] [stdout]     |
[INFO] [stdout] 270 |         let chunk_format: ChunkTag = buffer[8..12]
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/chunk.rs:301:26
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let tag = header[0..4]
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/chunk.rs:305:52
[INFO] [stdout]     |
[INFO] [stdout] 305 |         let size = F::Endianness::read_u32(&header[4..8]);
[INFO] [stdout]     |                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/chunk.rs:375:16
[INFO] [stdout]     |
[INFO] [stdout] 375 |         buffer[0..4].copy_from_slice(&self.tag.0);
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/chunk.rs:377:46
[INFO] [stdout]     |
[INFO] [stdout] 377 |         F::Endianness::write_u32(&mut buffer[4..8], self.size);
[INFO] [stdout]     |                                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:128:41
[INFO] [stdout]     |
[INFO] [stdout] 128 |         self.storage.file.read(&mut buf[0..buf_upper_bound])
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/storage.rs:201:26
[INFO] [stdout]     |
[INFO] [stdout] 201 |                 for i in 1.. {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/storage.rs:209:49
[INFO] [stdout]     |
[INFO] [stdout] 209 |                     let rwbuf_part = &mut rwbuf[cmp::min(diff, rwbuf_len)..];
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/storage.rs:230:26
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 for i in 0.. {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/storage.rs:236:49
[INFO] [stdout]     |
[INFO] [stdout] 236 |                     let rwbuf_part = &mut rwbuf[part as usize..];
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/encoding.rs:58:35
[INFO] [stdout]    |
[INFO] [stdout] 58 |         string_from_utf16le(&data[2..])
[INFO] [stdout]    |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/encoding.rs:60:35
[INFO] [stdout]    |
[INFO] [stdout] 60 |         string_from_utf16be(&data[2..])
[INFO] [stdout]    |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/frame/content.rs:37:39
[INFO] [stdout]    |
[INFO] [stdout] 37 |         self.bytes(&int.to_be_bytes()[1..])
[INFO] [stdout]    |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/frame/content.rs:198:33
[INFO] [stdout]     |
[INFO] [stdout] 198 |         self.bytes(&counter_bin[i..])
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/frame/content.rs:444:12
[INFO] [stdout]     |
[INFO] [stdout] 444 |         b4[1..4].copy_from_slice(b3);
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/frame/content.rs:592:17
[INFO] [stdout]     |
[INFO] [stdout] 592 |             bin[8 - r.len()..].copy_from_slice(r);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/frame/content.rs:687:30
[INFO] [stdout]     |
[INFO] [stdout] 687 |             self.r = &self.r[i + text_delim.len()..];
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/frame/content.rs:814:18
[INFO] [stdout]     |
[INFO] [stdout] 814 |         for _ in 0..element_count {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/frame/content.rs:840:27
[INFO] [stdout]     |
[INFO] [stdout] 840 |             for c in data[i..].iter() {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v2.rs:15:49
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let id = frame::str_from_utf8(&frame_header[0..3])?;
[INFO] [stdout]    |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v2.rs:16:35
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let sizebytes = &frame_header[3..6];
[INFO] [stdout]    |                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v2.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |     writer.write_all(&size_buf[1..4])?;
[INFO] [stdout]    |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v3.rs:29:49
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let id = frame::str_from_utf8(&frame_header[0..4])?;
[INFO] [stdout]    |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v3.rs:31:58
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let content_size = BigEndian::read_u32(&frame_header[4..8]) as usize;
[INFO] [stdout]    |                                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v3.rs:32:77
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let flags = Flags::from_bits_truncate(BigEndian::read_u16(&frame_header[8..10]));
[INFO] [stdout]    |                                                                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v4.rs:31:49
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let id = frame::str_from_utf8(&frame_header[0..4])?;
[INFO] [stdout]    |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v4.rs:32:78
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let content_size = unsynch::decode_u32(BigEndian::read_u32(&frame_header[4..8])) as usize;
[INFO] [stdout]    |                                                                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v4.rs:33:77
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let flags = Flags::from_bits_truncate(BigEndian::read_u16(&frame_header[8..10]));
[INFO] [stdout]    |                                                                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/frame/mod.rs:83:21
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let bad = b[err.valid_up_to()..].to_vec();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/tag.rs:85:80
[INFO] [stdout]    |
[INFO] [stdout] 85 |             let ext_size = unsynch::decode_u32(BigEndian::read_u32(&ext_header[0..4]));
[INFO] [stdout]    |                                                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/tag.rs:159:20
[INFO] [stdout]     |
[INFO] [stdout] 159 |         if &header[0..3] != b"ID3" {
[INFO] [stdout]     |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/tag.rs:183:72
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let tag_size = unsynch::decode_u32(BigEndian::read_u32(&header[6..10]));
[INFO] [stdout]     |                                                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/tag.rs:425:59
[INFO] [stdout]     |
[INFO] [stdout] 425 |         let location = locate_id3v2(&mut file)?.unwrap_or(0..0); // Create a new tag if none could be located.
[INFO] [stdout]     |                                                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/tag.rs:476:13
[INFO] [stdout]     |
[INFO] [stdout] 476 |     Ok(Some(0..tag_size + num_padding as u64))
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tag.rs:205:72
[INFO] [stdout]     |
[INFO] [stdout] 205 |         let location = stream::tag::locate_id3v2(&mut file)?.unwrap_or(0..0); // Create a new tag if none could be located.
[INFO] [stdout]     |                                                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/tcon.rs:62:30
[INFO] [stdout]    |
[INFO] [stdout] 62 |             self.0 = &self.0[prefix.len()..];
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/tcon.rs:104:30
[INFO] [stdout]     |
[INFO] [stdout] 104 |             self.0 = &self.0[1..];
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/stream/frame/content.rs:589:17
[INFO] [stdout]     |
[INFO] [stdout] 589 |                 _ => unreachable!(),
[INFO] [stdout]     |                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reader` is never used
[INFO] [stdout]   --> src/storage.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub trait Storage<'a> {
[INFO] [stdout]    |           ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn reader(&'a mut self) -> io::Result<Self::Reader>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 63 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tempfile v3.10.1
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         use tokio::io::AsyncReadExt;
[INFO] [stdout]     |             ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:214:13
[INFO] [stdout]     |
[INFO] [stdout] 214 |         use tokio::io::AsyncReadExt;
[INFO] [stdout]     |             ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:593:7
[INFO] [stdout]     |
[INFO] [stdout] 593 |     #[tokio::test]
[INFO] [stdout]     |       ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:628:7
[INFO] [stdout]     |
[INFO] [stdout] 628 |     #[tokio::test]
[INFO] [stdout]     |       ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:765:7
[INFO] [stdout]     |
[INFO] [stdout] 765 |     #[tokio::test]
[INFO] [stdout]     |       ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:113:26
[INFO] [stdout]     |
[INFO] [stdout] 113 |         mut reader: impl tokio::io::AsyncRead + std::marker::Unpin,
[INFO] [stdout]     |                          ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:209:22
[INFO] [stdout]     |
[INFO] [stdout] 209 |     mut reader: impl tokio::io::AsyncRead + std::marker::Unpin,
[INFO] [stdout]     |                      ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:595:24
[INFO] [stdout]     |
[INFO] [stdout] 595 |         let mut file = tokio::fs::File::open("testdata/id3v22.id3").await.unwrap();
[INFO] [stdout]     |                        ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 481 +     use crate::stream::tag::fs::File;
[INFO] [stdout]     |
[INFO] [stdout] 481 +     use std::fs::File;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `File`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 595 -         let mut file = tokio::fs::File::open("testdata/id3v22.id3").await.unwrap();
[INFO] [stdout] 595 +         let mut file = File::open("testdata/id3v22.id3").await.unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:630:24
[INFO] [stdout]     |
[INFO] [stdout] 630 |         let mut file = tokio::fs::File::open("testdata/id3v23.id3").await.unwrap();
[INFO] [stdout]     |                        ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 481 +     use crate::stream::tag::fs::File;
[INFO] [stdout]     |
[INFO] [stdout] 481 +     use std::fs::File;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `File`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 630 -         let mut file = tokio::fs::File::open("testdata/id3v23.id3").await.unwrap();
[INFO] [stdout] 630 +         let mut file = File::open("testdata/id3v23.id3").await.unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]    --> src/stream/tag.rs:767:24
[INFO] [stdout]     |
[INFO] [stdout] 767 |         let mut file = tokio::fs::File::open("testdata/id3v24_ext.id3")
[INFO] [stdout]     |                        ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 481 +     use crate::stream::tag::fs::File;
[INFO] [stdout]     |
[INFO] [stdout] 481 +     use std::fs::File;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `File`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 767 -         let mut file = tokio::fs::File::open("testdata/id3v24_ext.id3")
[INFO] [stdout] 767 +         let mut file = File::open("testdata/id3v24_ext.id3")
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/frame/timestamp.rs:106:30
[INFO] [stdout]     |
[INFO] [stdout] 106 |             self.0 = &self.0[1..];
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/frame/timestamp.rs:138:30
[INFO] [stdout]     |
[INFO] [stdout] 138 |             self.0 = &self.0[1..];
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]  --> src/v1.rs:9:37
[INFO] [stdout]   |
[INFO] [stdout] 9 | static TAG_CHUNK: ops::Range<i64> = -128..0;
[INFO] [stdout]   |                                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/v1.rs:11:38
[INFO] [stdout]    |
[INFO] [stdout] 11 | static XTAG_CHUNK: ops::Range<i64> = -355..-128;
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/v1.rs:224:44
[INFO] [stdout]     |
[INFO] [stdout] 224 |             reader.read_exact(&mut tag_buf[(l + TAG_CHUNK.start) as usize..])?;
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/v1.rs:233:58
[INFO] [stdout]     |
[INFO] [stdout] 233 |             let (xtag, tag) = (&tag_buf[..227], &tag_buf[227..]);
[INFO] [stdout]     |                                                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:234:21
[INFO] [stdout]     |
[INFO] [stdout] 234 |             if &tag[0..3] != b"TAG" {
[INFO] [stdout]     |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:239:26
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 if &xtag[0..4] == b"TAG+" {
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:262:37
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let title = decode_str(&tag[3..33], xtag.as_ref().map(|t| &t[4..64]));
[INFO] [stdout]     |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:262:70
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let title = decode_str(&tag[3..33], xtag.as_ref().map(|t| &t[4..64]));
[INFO] [stdout]     |                                                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:263:38
[INFO] [stdout]     |
[INFO] [stdout] 263 |         let artist = decode_str(&tag[33..63], xtag.as_ref().map(|t| &t[64..124]));
[INFO] [stdout]     |                                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:263:72
[INFO] [stdout]     |
[INFO] [stdout] 263 |         let artist = decode_str(&tag[33..63], xtag.as_ref().map(|t| &t[64..124]));
[INFO] [stdout]     |                                                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:264:37
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let album = decode_str(&tag[63..93], xtag.as_ref().map(|t| &t[124..184]));
[INFO] [stdout]     |                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:264:71
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let album = decode_str(&tag[63..93], xtag.as_ref().map(|t| &t[124..184]));
[INFO] [stdout]     |                                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:265:36
[INFO] [stdout]     |
[INFO] [stdout] 265 |         let year = decode_str(&tag[93..97], None);
[INFO] [stdout]     |                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:267:35
[INFO] [stdout]     |
[INFO] [stdout] 267 |             (Some(tag[126]), &tag[97..125])
[INFO] [stdout]     |                                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:269:25
[INFO] [stdout]     |
[INFO] [stdout] 269 |             (None, &tag[97..127])
[INFO] [stdout]     |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:275:44
[INFO] [stdout]     |
[INFO] [stdout] 275 |             let genre_str = decode_str(&xt[185..215], None);
[INFO] [stdout]     |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:276:45
[INFO] [stdout]     |
[INFO] [stdout] 276 |             let start_time = decode_str(&xt[185..215], None);
[INFO] [stdout]     |                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/v1.rs:277:43
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let end_time = decode_str(&xt[185..215], None);
[INFO] [stdout]     |                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/chunk.rs:70:52
[INFO] [stdout]    |
[INFO] [stdout] 70 |             storage = PlainStorage::new(&mut file, id3_tag_pos..id3_tag_end_pos);
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/chunk.rs:86:52
[INFO] [stdout]    |
[INFO] [stdout] 86 |             storage = PlainStorage::new(&mut file, pos..pos);
[INFO] [stdout]    |                                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/chunk.rs:260:26
[INFO] [stdout]     |
[INFO] [stdout] 260 |         let tag = buffer[0..4]
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/chunk.rs:264:52
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let size = F::Endianness::read_u32(&buffer[4..8]);
[INFO] [stdout]     |                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/chunk.rs:270:45
[INFO] [stdout]     |
[INFO] [stdout] 270 |         let chunk_format: ChunkTag = buffer[8..12]
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/chunk.rs:301:26
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let tag = header[0..4]
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/chunk.rs:305:52
[INFO] [stdout]     |
[INFO] [stdout] 305 |         let size = F::Endianness::read_u32(&header[4..8]);
[INFO] [stdout]     |                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/chunk.rs:375:16
[INFO] [stdout]     |
[INFO] [stdout] 375 |         buffer[0..4].copy_from_slice(&self.tag.0);
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/chunk.rs:377:46
[INFO] [stdout]     |
[INFO] [stdout] 377 |         F::Endianness::write_u32(&mut buffer[4..8], self.size);
[INFO] [stdout]     |                                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:128:41
[INFO] [stdout]     |
[INFO] [stdout] 128 |         self.storage.file.read(&mut buf[0..buf_upper_bound])
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/storage.rs:201:26
[INFO] [stdout]     |
[INFO] [stdout] 201 |                 for i in 1.. {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/storage.rs:209:49
[INFO] [stdout]     |
[INFO] [stdout] 209 |                     let rwbuf_part = &mut rwbuf[cmp::min(diff, rwbuf_len)..];
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/storage.rs:230:26
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 for i in 0.. {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/storage.rs:236:49
[INFO] [stdout]     |
[INFO] [stdout] 236 |                     let rwbuf_part = &mut rwbuf[part as usize..];
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:304:65
[INFO] [stdout]     |
[INFO] [stdout] 304 |         let mut store = PlainStorage::new(io::Cursor::new(buf), 128..256);
[INFO] [stdout]     |                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:311:29
[INFO] [stdout]     |
[INFO] [stdout] 311 |         let buf: Vec<u8> = (0..128).collect();
[INFO] [stdout]     |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:312:65
[INFO] [stdout]     |
[INFO] [stdout] 312 |         let mut store = PlainStorage::new(io::Cursor::new(buf), 32..64);
[INFO] [stdout]     |                                                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:331:29
[INFO] [stdout]     |
[INFO] [stdout] 331 |         let buf: Vec<u8> = (0..128).collect();
[INFO] [stdout]     |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:333:65
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let mut store = PlainStorage::new(io::Cursor::new(buf), 32..64);
[INFO] [stdout]     |                                                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:339:20
[INFO] [stdout]     |
[INFO] [stdout] 339 |         assert_eq!(32..64, store.region);
[INFO] [stdout]     |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:342:28
[INFO] [stdout]     |
[INFO] [stdout] 342 |             &buf_reference[0..32],
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:346:28
[INFO] [stdout]     |
[INFO] [stdout] 346 |             &buf_reference[64..128],
[INFO] [stdout]     |                            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/storage.rs:347:35
[INFO] [stdout]     |
[INFO] [stdout] 347 |             &store.file.get_ref()[store.region.end as usize..]
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:366:29
[INFO] [stdout]     |
[INFO] [stdout] 366 |         let buf: Vec<u8> = (0..128).collect();
[INFO] [stdout]     |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:368:65
[INFO] [stdout]     |
[INFO] [stdout] 368 |         let mut store = PlainStorage::new(io::Cursor::new(buf), 64..64);
[INFO] [stdout]     |                                                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:374:20
[INFO] [stdout]     |
[INFO] [stdout] 374 |         assert_eq!(64..128, store.region);
[INFO] [stdout]     |                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:377:28
[INFO] [stdout]     |
[INFO] [stdout] 377 |             &buf_reference[0..64],
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:381:28
[INFO] [stdout]     |
[INFO] [stdout] 381 |             &buf_reference[64..128],
[INFO] [stdout]     |                            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/storage.rs:382:35
[INFO] [stdout]     |
[INFO] [stdout] 382 |             &store.file.get_ref()[store.region.end as usize..]
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:390:29
[INFO] [stdout]     |
[INFO] [stdout] 390 |         let buf: Vec<u8> = (0..40_000).map(|i| (i & 0xff) as u8).collect();
[INFO] [stdout]     |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:392:65
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let mut store = PlainStorage::new(io::Cursor::new(buf), 2_000..22_000);
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:398:20
[INFO] [stdout]     |
[INFO] [stdout] 398 |         assert_eq!(2_000..42_000, store.region);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/storage.rs:401:31
[INFO] [stdout]     |
[INFO] [stdout] 401 |         assert!(buf_reference[22_000..] == store.file.get_ref()[store.region.end as usize..]);
[INFO] [stdout]     |                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/storage.rs:401:65
[INFO] [stdout]     |
[INFO] [stdout] 401 |         assert!(buf_reference[22_000..] == store.file.get_ref()[store.region.end as usize..]);
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:419:29
[INFO] [stdout]     |
[INFO] [stdout] 419 |         let buf: Vec<u8> = (0..128).collect();
[INFO] [stdout]     |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:420:65
[INFO] [stdout]     |
[INFO] [stdout] 420 |         let mut store = PlainStorage::new(io::Cursor::new(buf), 32..96);
[INFO] [stdout]     |                                                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:426:20
[INFO] [stdout]     |
[INFO] [stdout] 426 |         assert_eq!(32..64, store.region);
[INFO] [stdout]     |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:434:29
[INFO] [stdout]     |
[INFO] [stdout] 434 |         let buf: Vec<u8> = (0..40_000).map(|i| (i & 0xff) as u8).collect();
[INFO] [stdout]     |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:436:65
[INFO] [stdout]     |
[INFO] [stdout] 436 |         let mut store = PlainStorage::new(io::Cursor::new(buf), 2_000..22_000);
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage.rs:442:20
[INFO] [stdout]     |
[INFO] [stdout] 442 |         assert_eq!(2_000..11_000, store.region);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/storage.rs:444:31
[INFO] [stdout]     |
[INFO] [stdout] 444 |         assert!(buf_reference[22_000..] == store.file.get_ref()[store.region.end as usize..]);
[INFO] [stdout]     |                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/storage.rs:444:65
[INFO] [stdout]     |
[INFO] [stdout] 444 |         assert!(buf_reference[22_000..] == store.file.get_ref()[store.region.end as usize..]);
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/encoding.rs:58:35
[INFO] [stdout]    |
[INFO] [stdout] 58 |         string_from_utf16le(&data[2..])
[INFO] [stdout]    |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/encoding.rs:60:35
[INFO] [stdout]    |
[INFO] [stdout] 60 |         string_from_utf16be(&data[2..])
[INFO] [stdout]    |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/frame/content.rs:37:39
[INFO] [stdout]    |
[INFO] [stdout] 37 |         self.bytes(&int.to_be_bytes()[1..])
[INFO] [stdout]    |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/frame/content.rs:198:33
[INFO] [stdout]     |
[INFO] [stdout] 198 |         self.bytes(&counter_bin[i..])
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/frame/content.rs:444:12
[INFO] [stdout]     |
[INFO] [stdout] 444 |         b4[1..4].copy_from_slice(b3);
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/frame/content.rs:592:17
[INFO] [stdout]     |
[INFO] [stdout] 592 |             bin[8 - r.len()..].copy_from_slice(r);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/frame/content.rs:687:30
[INFO] [stdout]     |
[INFO] [stdout] 687 |             self.r = &self.r[i + text_delim.len()..];
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/frame/content.rs:814:18
[INFO] [stdout]     |
[INFO] [stdout] 814 |         for _ in 0..element_count {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/frame/content.rs:840:27
[INFO] [stdout]     |
[INFO] [stdout] 840 |             for c in data[i..].iter() {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v2.rs:15:49
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let id = frame::str_from_utf8(&frame_header[0..3])?;
[INFO] [stdout]    |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v2.rs:16:35
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let sizebytes = &frame_header[3..6];
[INFO] [stdout]    |                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v2.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |     writer.write_all(&size_buf[1..4])?;
[INFO] [stdout]    |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v3.rs:29:49
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let id = frame::str_from_utf8(&frame_header[0..4])?;
[INFO] [stdout]    |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v3.rs:31:58
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let content_size = BigEndian::read_u32(&frame_header[4..8]) as usize;
[INFO] [stdout]    |                                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v3.rs:32:77
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let flags = Flags::from_bits_truncate(BigEndian::read_u16(&frame_header[8..10]));
[INFO] [stdout]    |                                                                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v4.rs:31:49
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let id = frame::str_from_utf8(&frame_header[0..4])?;
[INFO] [stdout]    |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v4.rs:32:78
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let content_size = unsynch::decode_u32(BigEndian::read_u32(&frame_header[4..8])) as usize;
[INFO] [stdout]    |                                                                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/frame/v4.rs:33:77
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let flags = Flags::from_bits_truncate(BigEndian::read_u16(&frame_header[8..10]));
[INFO] [stdout]    |                                                                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/frame/mod.rs:83:21
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let bad = b[err.valid_up_to()..].to_vec();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/frame/mod.rs:125:55
[INFO] [stdout]     |
[INFO] [stdout] 125 |         bytes.extend((u32_to_bytes(data.len() as u32)[1..]).iter().cloned());
[INFO] [stdout]     |                                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/tag.rs:85:80
[INFO] [stdout]    |
[INFO] [stdout] 85 |             let ext_size = unsynch::decode_u32(BigEndian::read_u32(&ext_header[0..4]));
[INFO] [stdout]    |                                                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/tag.rs:125:80
[INFO] [stdout]     |
[INFO] [stdout] 125 |             let ext_size = unsynch::decode_u32(BigEndian::read_u32(&ext_header[0..4]));
[INFO] [stdout]     |                                                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/tag.rs:159:20
[INFO] [stdout]     |
[INFO] [stdout] 159 |         if &header[0..3] != b"ID3" {
[INFO] [stdout]     |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/tag.rs:183:72
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let tag_size = unsynch::decode_u32(BigEndian::read_u32(&header[6..10]));
[INFO] [stdout]     |                                                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/tag.rs:425:59
[INFO] [stdout]     |
[INFO] [stdout] 425 |         let location = locate_id3v2(&mut file)?.unwrap_or(0..0); // Create a new tag if none could be located.
[INFO] [stdout]     |                                                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/tag.rs:476:13
[INFO] [stdout]     |
[INFO] [stdout] 476 |     Ok(Some(0..tag_size + num_padding as u64))
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/tag.rs:972:25
[INFO] [stdout]     |
[INFO] [stdout] 972 |         assert_eq!(Some(0..0x0000c3ea), location);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/tag.rs:979:25
[INFO] [stdout]     |
[INFO] [stdout] 979 |         assert_eq!(Some(0..0x00006c0a), location);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/tag.rs:986:25
[INFO] [stdout]     |
[INFO] [stdout] 986 |         assert_eq!(Some(0..0x00006c0a), location);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/tag.rs:993:25
[INFO] [stdout]     |
[INFO] [stdout] 993 |         assert_eq!(Some(0..0x0000018d), location);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/unsynch.rs:115:18
[INFO] [stdout]     |
[INFO] [stdout] 115 |         for i in 0..1 << 26 {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/unsynch.rs:146:18
[INFO] [stdout]     |
[INFO] [stdout] 146 |         for i in 0..1_000_000 {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tag.rs:205:72
[INFO] [stdout]     |
[INFO] [stdout] 205 |         let location = stream::tag::locate_id3v2(&mut file)?.unwrap_or(0..0); // Create a new tag if none could be located.
[INFO] [stdout]     |                                                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/tcon.rs:62:30
[INFO] [stdout]    |
[INFO] [stdout] 62 |             self.0 = &self.0[prefix.len()..];
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/tcon.rs:104:30
[INFO] [stdout]     |
[INFO] [stdout] 104 |             self.0 = &self.0[1..];
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 10 previous errors; 97 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `id3` (lib test) due to 11 previous errors; 97 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "cdb8f6366110ce3ac2f1e5628825e5ce180f222454baff2fbfb8a227f97729f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cdb8f6366110ce3ac2f1e5628825e5ce180f222454baff2fbfb8a227f97729f5", kill_on_drop: false }`
[INFO] [stdout] cdb8f6366110ce3ac2f1e5628825e5ce180f222454baff2fbfb8a227f97729f5
